package com.binance.mbxgateway.api;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import com.binance.master.configs.FeignConfig;
import com.binance.master.constant.Constant;
import com.binance.master.models.APIRequest;
import com.binance.master.models.APIResponse;
import com.binance.mbxgateway.vo.request.price.GetMbxPriceRequest;
import com.binance.mbxgateway.vo.request.price.GetPriceRequest;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@Api
@FeignClient(name = Constant.MBX_GATEWAY_SERVICE, configuration = FeignConfig.class)
public interface IPriceApi {

    @ApiOperation("")
    @PostMapping("/public/price")
    APIResponse<Double> getPrice(@RequestBody APIRequest<GetMbxPriceRequest> reqeust) throws Exception;

    @ApiOperation("")
    @PostMapping("/public/ticker/24hr")
    APIResponse<String> get24hrTicker(@RequestBody APIRequest<GetPriceRequest> reqeust) throws Exception;

}
